# -*- coding: utf-8 -*-
# 定义全局变量
from flask import Flask #封装APP变量
from flask_script import Manager
from flask_sqlalchemy import SQLAlchemy#封装db变量
import os
class Application( Flask ):#Application继承Flask类
    def __init__(self,import_name,template_folder = None,root_path=None):#import表示用包的名字作为初始化参数
        super( Application,self ).__init__( import_name ,template_folder=template_folder,root_path=root_path,static_folder=None)
        self.config.from_pyfile( 'config/base_setting.py' )#表示从配置文件中加载配置
        ## 定义环境变量 ops_config
        if "ops_config" in os.environ:
            #若环境变量在os.environ中，在加载相应的配置文件
             self.config.from_pyfile( 'config/%s_setting.py'%os.environ['ops_config'] )

        db.init_app( self )#初始化db变量

db = SQLAlchemy()
app = Application( __name__,template_folder=os.getcwd()+'/web/templates/',root_path=os.getcwd())
manager = Manager( app )#对Manager进行一次包装


'''
函数模板：将python方法设置为全局变量，注入到html中使用
(python和html中使用相同的链接管理；JS中自己写)
'''
from common.libs.UrlManager import UrlManager
app.add_template_global(UrlManager.buildUrl,'buildUrl')
app.add_template_global(UrlManager.buildStaticUrl,'buildStaticUrl')